1. Field of the Invention
Embodiments of the present invention generally relate to satellite position location systems and, more particularly, to a method and apparatus for decoding satellite navigation data from a satellite positioning system.
2. Description of the Related Art
Global Positioning System (GPS) receivers use measurements from several satellites to compute position. GPS receivers normally determine their position by computing time delays between transmission and reception of signals transmitted from satellites and received by the receiver on or near the surface of the earth. The time delays multiplied by the speed of light provide the distance from the receiver to each of the satellites that are in view of the receiver.
More specifically, each GPS signal available for commercial use utilizes a direct sequence spreading signal defined by a unique pseudo-random noise (PN) code (referred to as the coarse acquisition (C/A) code) having a 1.023 MHz spread rate. Each PN code bi-phase modulates a 1575.42 MHz carrier signal (referred to as the L1 carrier) and uniquely identifies a particular satellite. The PN code sequence length is 1023 chips, corresponding to a one millisecond time period. One cycle of 1023 chips is called a PN frame or epoch.
GPS receivers determine the time delays between transmission and reception of the signals by comparing time shifts between the received PN code signal sequence and internally generated PN signal sequences. These measured time delays are referred to as “sub-millisecond pseudoranges”, since they are known modulo the 1 millisecond PN frame boundaries. By resolving the integer number of milliseconds associated with each delay to each satellite, then one has true, unambiguous, pseudoranges. A set of four pseudoranges together with knowledge of absolute times of transmission of the GPS signals and satellite positions in relation to these absolute times is sufficient to solve for the position of the GPS receiver. The absolute times of transmission (or reception) are needed in order to determine the positions of the GPS satellites at the times of transmission and hence to compute the position of the GPS receiver.
Accordingly, each of the GPS satellites broadcasts a model of satellite orbit and clock data known as the satellite navigation message. The satellite navigation message is a 50 bit-per-second (bps) data stream that is modulo-2 added to the PN code with bit boundaries aligned with the beginning of a PN frame. There are exactly 20 PN frames per data bit period (20 milliseconds). The satellite navigation message includes satellite-positioning data, known as “ephemeris” data, which identifies the satellites and their orbits, as well as absolute time information (also referred to herein as “GPS time” or “time-of-day”) associated with the satellite signal. The absolute time information is in the form of a second of the week signal, referred to as time-of-week (TOW). This absolute time signal allows the receiver to unambiguously determine a time tag for when each received signal was transmitted by each satellite.
Notably, FIG. 1 illustrates the format of a GPS navigation message 102, as defined by ICD-GPS-200C. The navigation message 102 spans 12.5 minutes and comprises 25 frames. Each of the frames, such as frame 104, spans 30 seconds and comprises five subframes. In turn, each of the five subframes, such as subframe 106, spans six seconds and comprises ten words. Finally, each of the ten words, such as word 108, spans 0.6 seconds and comprises 30 bits.
The first three subframes of a frame, such as the frame 104, include satellite orbit information and clock correction information associated with a particular broadcasting satellite. The first three subframes of a frame are collectively referred to as “ephemeris”. Over a particular period of time (e.g., four hours), the first three subframes are identically repeated in each frame. The fourth and fifth subframes in a frame include part of a satellite almanac, which includes coarse ephemeris and time model information for the entire satellite constellation. The contents of the fourth and fifth subframes change until the entire almanac is transmitted. The repetition period of the fourth and fifth subframes in a frame is 12.5 minutes (i.e., the entire satellite almanac is contained in 15,000 bits).
Some of the transmitted data sequence of a navigation message is not common to the source information (e.g., ephemeris, time-of-day, etc.) represented by the message. Rather, the transmitted data sequence represents a coded version of the source data. Typically, a Hamming-type code is utilized that allows error deduction (e.g., parity checking). To this end, each of the transmitted 30-bit words of the navigation message comprises 24 data bits and 6 parity bits. This allows errors of three bits or less to be detected.
The conventional technique for decoding navigation messages is by decoding complete subframes of data. That is, for each subframe, the receiver attempts to decode the subframe as a block (300 bits) until the subframe is decoded. For example, if the receiver is only successful in decoding 100 bits of a subframe, the receiver will discard the decoded bits and attempt to decode the subframe again until the entire 300-bit subframe is decoded in a single block. In some GPS applications, the signal strengths of the satellite signals are so low that either the signals cannot be processed, or the time required to process the signals is excessive. Notably, the receiver may be unable to decode an entire subframe as a block in signal fading conditions. Absent another source of satellite navigation data, the receiver will not be able to locate its position.
Accordingly, there exists a need in the art for improved decoding of satellite navigation data from a satellite positioning system in the presence of low signal strengths.